/**
 * Copyright 2010 Balaji Thennarangam.
 */
package com.kathez.dao;

import com.kathez.CRUDOperataionType;
import com.kathez.KathezRoot;
import com.kathez.entity.DAOOperable;

/**
 * Super interface for all the Data access objects
 * 
 * @author Balaji T
 *
 */
public interface IKathezDao extends KathezRoot {
	
	/**
	 * There is only one method to implement all the Database operations.
	 * The type of operation to be performed is determined by the {@link CRUDOperataionType} 
	 * passed to the method.
	 * 
	 * The appropriate result returned by the method also depends on the {@link CRUDOperataionType}.
	 * 
	 * The results could be one of the following.
	 * 
	 * 
	 * @param entityObject
	 * @param opearationType
	 * @return
	 */
	public DAOResult doDataOperation(DAOOperable entityObject,CRUDOperataionType operationType);
	
}
